package eleventh.BigDecimal;

import java.math.BigDecimal;

class MyMath{
    public static double add(double d1,double d2){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2).doubleValue();
    }
    public static double sub(double d1,double d2){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2).doubleValue();
    }
    public static double mul(double d1,double d2){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.multiply(b2).doubleValue();
    }
    public static double div(double d1,double d2,int len){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        //任何一个数字除以1都是原数字
        //ROUND_HALF_UP是BigDecimal的一个常量，表示四舍五入的操作
        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
    }
    public static double round(double d ,int len){
        BigDecimal b1 = new BigDecimal(d);
        BigDecimal b2 = new BigDecimal(1);
        //任何一个数字除以1都是原数字
        //ROUND_HALF_UP是BigDecimal的一个常量，表示四舍五入的操作
        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
    }
}
public class 进行四舍五入的四则运算 {
    public static void main(String[] args) {
        System.out.println("加法操作："+MyMath.round(MyMath.add(10.345,3.333),1));
        System.out.println("乘法操作："+MyMath.round(MyMath.mul(10.345,3.333),3));
        System.out.println("除法操作："+MyMath.div(10.345,3.333,3));
        System.out.println("减法操作："+MyMath.round(MyMath.sub(10.345,3.333),3));
    }
}
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=57295:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 eleventh.BigDecimal.进行四舍五入的四则运算
加法操作：13.7
乘法操作：34.48
除法操作：3.104
减法操作：7.012

Process finished with exit code 0

 */